Glenn Morris [Sun, 7 Mar 2021 00:28:46 +0000 (16:28 -0800)]
Simplify silent-rules build machinery
* src/verbose.mk.in: New file.
* configure.ac (AM_V, AM_DEFAULT_V): Remove output variables.
(src/verbose.mk): New output file.
* Makefile.in, admin/charsets/Makefile.in:
* admin/grammars/Makefile.in, admin/unidata/Makefile.in:
* doc/emacs/Makefile.in, doc/lispintro/Makefile.in:
* doc/lispref/Makefile.in, doc/misc/Makefile.in, leim/Makefile.in:
* lib-src/Makefile.in, lib/Makefile.in, lisp/Makefile.in:
* lwlib/Makefile.in, nt/Makefile.in, oldXMenu/Makefile.in:
* src/Makefile.in, src/verbose.mk.in, test/Makefile.in:
Include src/verbose.mk rather than repeatedly defining AM_V_at etc.
Glenn Morris [Sat, 6 Mar 2021 19:37:11 +0000 (11:37 -0800)]
* src/Makefile.in (base_obj): Remove GMP_OBJ, undefined since 202007.
Glenn Morris [Sat, 6 Mar 2021 19:09:19 +0000 (11:09 -0800)]
Don't pass implicit flags to sub-makes
* Makefile.in (info_misc, uninstall, texi_misc):
Don't pass any implicit make flags to sub-makes.
Ref https://lists.gnu.org/r/help-make/2021-03/msg00007.html
Glenn Morris [Sat, 6 Mar 2021 18:38:07 +0000 (10:38 -0800)]
Remove the --without-makeinfo configure option (bug#46837)
* configure.ac (--without-makeinfo): Remove option.
(HAVE_MAKEINFO): Remove output variable.
* Makefile.in (HAVE_MAKEINFO): Remove.
(info_misc): Remove HAVE_MAKEINFO check.
(info-real): Remove target.
(info): Simplify.
; * etc/NEWS: Mention this.
Stefan Monnier [Sat, 6 Mar 2021 18:31:58 +0000 (13:31 -0500)]
* lisp/cedet/srecode/compile.el: Fix last change
(srecode-compile-inserter): Call `make-instance` properly.
Basil L. Contovounesios [Sun, 21 Feb 2021 20:10:08 +0000 (20:10 +0000)]
Speed up json.el encoding
This replaces most json-encode-* functions with similar
json--print-* counterparts that insert into the current buffer
instead of returning a string (bug#46761).
Some unused but useful json-encode-* functions are kept for backward
compatibility and as a public API, and the rest are deprecated.
* etc/NEWS: Announce obsoletions.
* lisp/json.el: Document organization of library. Make subsection
headings more consistent.
(json--encoding-current-indentation): Rename...
(json--print-indentation-prefix): ...to this, to reflect new use.
(json--encode-stringlike, json--encode-alist): Rename...
(json--print-stringlike, json--print-alist): ...to these,
respectively, and encode argument into current buffer instead. All
callers changed.
(json--print-string, json--print-unordered-map, json--print-array)
(json--print): New functions.
(json-encode-string, json-encode-plist, json-encode-array)
(json-encode): Use them, respectively.
(json-encode-number, json-encode-hash-table): Mark as obsolete
aliases of json-encode.
(json-encode-key, json-encode-list): Mark as obsolete in preference
for json-encode.
(json--print-indentation-depth, json--print-keyval-separator): New
variables.
(json--with-output-to-string): New macro.
(json--print-indentation, json--print-keyword, json--print-key)
(json--print-pair, json--print-map, json--print-list): New
functions.
(json--with-indentation): Use json--print-indentation-depth to avoid
unnecessary string allocation.
(json-encoding-default-indentation, json-pretty-print-max-secs):
Clarify docstrings.
(json--escape, json--long-string-threshold, json--string-buffer):
Remove; no longer used.
* lisp/progmodes/js.el (js--js-encode-value): Replace
json-encode-string and json-encode-number with json-encode.
(js-eval-defun): Use json--print-list to avoid
json-encode-list->insert roundtrip.
* test/lisp/json-tests.el (test-json-encode-number)
(test-json-encode-hash-table, test-json-encode-hash-table-pretty)
(test-json-encode-hash-table-lisp-style)
(test-json-encode-hash-table-sort, test-json-encode-list): Replace
uses of obsolete functions with the equivalent use of json-encode.
(test-json-encode-key): Suppress obsoletion warnings.
(test-json-encode-string): Check that text properties are stripped.
Stefan Monnier [Sat, 6 Mar 2021 18:19:46 +0000 (13:19 -0500)]
* lisp/emacs-lisp/bindat.el (bindat-struct): Fix Edebug def
Stefan Monnier [Sat, 6 Mar 2021 18:03:12 +0000 (13:03 -0500)]
* lisp/emulation/: Use lexical-binding
* lisp/emulation/cua-base.el: Use lexical-binding.
Remove redundant `:group` arguments.
(cua-mode): Don't use `:require` since the autoload on `define-minor-mode`
takes care of loading the mode when custom-setting it.
* lisp/emulation/cua-gmrk.el: Use lexical-binding.
(cua--copy-rectangle-to-global-mark): Remove unused var `src-buf`.
* lisp/emulation/edt-mapper.el: Use lexical-binding.
* lisp/emulation/edt.el: Use lexical-binding.
Remove redundant `:group` arguments.
(edt-with-position): Allow `top`, `left`, and `far` to be left unused
in `body`.
* lisp/emulation/keypad.el: Use lexical-binding.
* lisp/emulation/viper-cmd.el: Move `provide` to the end.
(viper-read-string-with-history): Strength reduce `eval` to `symbol-value`.
* lisp/emulation/viper-ex.el: Use lexical-binding.
Remove redundant `:group` arguments.
Move `provide` to the end.
* lisp/emulation/viper-init.el: Use lexical-binding.
* lisp/emulation/viper-keym.el (viper-toggle-key): Use `dolist`.
(viper-insert-diehard-map): Use `string`.
(viper-modify-major-mode): Use `alist-get` and `setf`.
* lisp/emulation/viper-macs.el (viper-ex-work-buf):
Move `provide` to the end.
(viper-record-kbd-macro): Strength reduce `eval` to `symbol-value`.
(viper-describe-kbd-macros): Return value is not significant.
(viper-keyseq-is-a-possible-macro): Use `seq-some`.
(viper-common-seq-prefix): Use `seq-every-p`.
* lisp/emulation/viper-mous.el: Use lexical-binding.
Remove redundant `:group` arguments.
Move `provide` to the end.
(viper-remember-current-frame): Accept arbitrary ignored args.
(viper-parse-mouse-key): Strength reduce `eval` to `symbol-value`.
Remove unused var `key-spec`.
(viper-bind-mouse-search-key, viper-bind-mouse-insert-key):
Apply de Morgan.
* lisp/emulation/viper-util.el: Move `provide` to the end.
(viper-move-marker-locally, viper-push-onto-ring, viper-save-setting):
Strength reduce `eval` to `symbol-value`.
(viper-event-vector-p, viper-char-symbol-sequence-p, viper-char-array-p):
Use `seq-every-p`.
* lisp/emulation/viper.el (viper-non-hook-settings): Eta-reduce use of
`viper-remember-current-frame`.
Basil L. Contovounesios [Wed, 24 Feb 2021 00:53:05 +0000 (00:53 +0000)]
Various map.el improvements
* lisp/emacs-lisp/seq.el (seq-do-indexed): Return nil as per doc.
* lisp/emacs-lisp/map.el: Require Emacs >= 26 due to dependence on
5-arg alist-get. Bump package to version 3.0. Fix other
headers. (Bug#46754)
(map--plist-p): Detect list starting with nil as plist, not alist.
(map-elt, map-filter, map-apply, map--make-pcase-bindings)
(map--make-pcase-patterns): Simplify.
(map-let, map-put, map-nested-elt, mapp): Update docstring for plist
support.
(map-delete): Fix OBOE on arrays. Split into cl-defmethods.
(map-values, map-values-apply): Specialize for arrays.
(map-pairs, map-keys-apply, map-put!): Improve docstring.
(map-length): Clarify docstring w.r.t. duplicate keys. Split into
cl-defmethods. Optimize default implementation.
(map-copy): Use copy-alist on alists. Split into cl-defmethods.
(map-contains-key): Add plist support. Clarify docstring
w.r.t. optional argument. Simplify default implementation.
(map-some, map-every-p, map-merge, map-merge-with, map--into-hash):
Don't use map-apply for side effects.
(map-into): Preserve plist ordering. Improve docstrings.
(map-insert): Add hash-table and array support.
(map-inplace): Remove unused error symbol.
(map-do): Return nil as per doc.
* etc/NEWS: Announce new user-visible behavior.
* test/lisp/emacs-lisp/map-tests.el: Prefer should-not
over (should (not ...)) in general.
(with-maps-do): Fix docstring.
(with-empty-maps-do): New macro.
(test-map-elt-default, test-mapp, test-map-keys, test-map-values)
(test-map-pairs, test-map-length, test-map-copy, test-map-apply)
(test-map-do, test-map-keys-apply, test-map-values-apply)
(test-map-filter, test-map-remove, test-map-empty-p)
(test-map-contains-key, test-map-some, test-map-every-p):
Use it.
(test-map-plist-p, test-map-put!-new-keys, test-map-insert-empty)
(test-map-insert, test-map-delete-empty, test-map-copy-alist)
(test-map-contains-key-testfn, test-map-into-hash-test)
(test-map-into-empty, test-map-merge, test-map-merge-empty):
New tests.
(test-map-elt): Test array key that is within bounds but not fixnum.
(test-map-put!): Use map--plist-p. Remove redundant tests.
(test-map-put-alist-new-key): Don't modify list literal.
(test-map-put-testfn-alist, test-map-put-return-value): Silence
obsoletion warnings.
(test-map-delete): Check for OBOE on arrays.
(test-map-delete-return-value): Remove test made redundant by
test-map-delete.
(test-map-nested-elt, test-map-into): Test plists too.
Alan Mackenzie [Sat, 6 Mar 2021 15:22:25 +0000 (15:22 +0000)]
CC Mode: Fix calculation of c-parse-state when there're macros with braces
This fixes bug #46951.
* lisp/progmodes/cc-engine.el (c-append-lower-brace-pair-to-state-cache):
Ensure the starting point for backward scanning is not within a macro which
doesn't contain HERE.
Stefan Monnier [Sat, 6 Mar 2021 14:56:43 +0000 (09:56 -0500)]
* lisp/progmodes/flymake.el (flymake-log): Push the right code
Stefan Monnier [Sat, 6 Mar 2021 14:55:30 +0000 (09:55 -0500)]
* lisp/progmodes/flymake.el (flymake-log): Simplify
Eli Zaretskii [Sat, 6 Mar 2021 14:49:00 +0000 (16:49 +0200)]
Revert "Fix Makefile subshell output when run in parallel"
This reverts commit
117505454ce04c0c0ce2c2b4058823cf764fc2eb.
It breaks the build for versions of GNU Make that don't support -O.
Basil L. Contovounesios [Sat, 6 Mar 2021 11:40:48 +0000 (11:40 +0000)]
Fix Makefile subshell output when run in parallel
For discussion, see the following thread:
https://lists.gnu.org/r/emacs-devel/2021-03/msg00255.html
* Makefile.in (texi_misc): Avoid interspersing parallel Make output
with that from subshell.
Basil L. Contovounesios [Sat, 6 Mar 2021 13:13:40 +0000 (13:13 +0000)]
Pacify some semantic-tag-make-plist warnings
* lisp/cedet/semantic/tag.el (semantic-tag-make-plist): Define
before its first use to pacify some recent "may not be defined at
runtime" warnings after turning on lexical-binding.
Lars Ingebrigtsen [Sat, 6 Mar 2021 12:27:34 +0000 (13:27 +0100)]
Remove mention of using defun- and defvar- as prefixes
* doc/lispref/tips.texi (Coding Conventions): Remove mention of
using defun- and defvar- as prefixes, as this is something that we
rarely do in Emacs (bug#46899).
Eli Zaretskii [Sat, 6 Mar 2021 10:16:37 +0000 (12:16 +0200)]
; Fix last change.
Eli Zaretskii [Sat, 6 Mar 2021 10:12:44 +0000 (12:12 +0200)]
Improve documentation of Bindat
* doc/lispref/processes.texi (Bindat Types, Bindat Functions)
(Bindat Computed Types): Improve wording and add indexing.
* etc/NEWS: Add a pointer to the ELisp manual for "Bindat".
Protesilaos Stavrou [Fri, 5 Mar 2021 18:31:08 +0000 (18:31 +0000)]
Pull Modus themes version 1.2.3 from upstream
This syncs with the following upstream revision:
Update to version 1.2.3
0a36239 2021-03-05 19:43:30 +0200
https://gitlab.com/protesilaos/modus-themes/-/commit/
0a36239baf908585cdf32c6188eb86713d9bf6c6
For discussion, see bug#45068 and the following upstream issue:
https://gitlab.com/protesilaos/modus-themes/-/issues/162
* doc/misc/modus-themes.org:
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-themes.el:
* etc/themes/modus-vivendi-theme.el: Update to version 1.2.3.
Protesilaos Stavrou [Thu, 4 Mar 2021 14:20:15 +0000 (16:20 +0200)]
Update Modus themes to their version 1.2.0
* doc/misc/modus-themes.org: Add new version of the manual, with
changes to markup and references to the latest state of the project.
* etc/themes/modus-vivendi-theme.el:
* etc/themes/modus-operandi-theme.el: Provide updated version of each
theme, which expands the contents of 'modus-themes.el' (bug#45068).
* etc/themes/modus-themes.el: Add new supportive file. This is where
theme data, functions, and face definitions are defined.
Basil L. Contovounesios [Sat, 6 Mar 2021 09:05:49 +0000 (09:05 +0000)]
Conditionally use macroexp-file-name in Flymake
* lisp/progmodes/flymake.el (flymake-log): Reinstate Emacs 26
support by conditionally using macroexp-file-name which is new in
Emacs 28 (bug#46957).
Stefan Monnier [Sat, 6 Mar 2021 04:33:21 +0000 (23:33 -0500)]
* * lisp/cedet/semantic: Use lexical-binding in the generated grammars
* admin/grammars/c.by (typesimple): Bind `semantic-c-classname` dynamically.
* lisp/cedet/semantic/bovine.el: Use lexical-binding.
(semantic-lambda): Silence warnings if the `vals` arg is not used.
* lisp/cedet/semantic/grammar-wy.el: Re-generate.
* lisp/cedet/semantic/bovine/grammar.el: Use lexical-binding.
(bovine-grammar-expand-action): Silence warnings if some of the
`vals`, `start`, or `end` args is not used.
(bovine--make-parser-1): Use lexical-binding in the generated files.
* lisp/cedet/semantic/wisent/grammar.el: Use lexical-binding.
(wisent--make-parser-1): Use lexical-binding in the generated files.
Stefan Kangas [Sat, 6 Mar 2021 03:08:54 +0000 (04:08 +0100)]
; Fix typo.
Stefan Kangas [Sat, 6 Mar 2021 02:17:23 +0000 (03:17 +0100)]
Add some new tests for keymap.c
* test/src/keymap-tests.el (keymap-define-key/undefined)
(keymap-define-key/keyboard-macro, keymap-define-key/lambda)
(keymap-define-key/keymap, keymap-define-key/menu-item)
(keymap-lookup-key/list-of-keymaps, keymap-lookup-key/too-long):
New tests.
(keymap-lookup-key): Extend test slightly.
Stefan Monnier [Sat, 6 Mar 2021 02:00:00 +0000 (21:00 -0500)]
* lisp/cedet/srecode/*.el: Use lexical-binding
* lisp/cedet/srecode/compile.el (srecode-compile-inserter):
Use `make-instance` instead of the class name-as-function.
* lisp/cedet/srecode/fields.el (srecode-field-behind-hook):
Remove unused var `field`.
* lisp/cedet/srecode/find.el (srecode-load-tables-for-mode): Simplify.
* lisp/cedet/srecode/getset.el (srecode-semantic-selected-tag): Declare var.
* lisp/cedet/srecode/mode.el (srecode-minor-mode): Mark references to
non-existing `srecode-m3-items` function.
* lisp/cedet/srecode/srt-mode.el (srecode-parse-this-macro): Remove
unused var `raw`.
Stefan Monnier [Sat, 6 Mar 2021 00:56:31 +0000 (19:56 -0500)]
Bindat: new macro-expansion based data layout language
Thorough redesign of the Bindat system, which makes it possible
to define new Bindat type forms, define recursive types, control
the values returned when unpacking, freely mix arbitrary computations
with type definitions, as well as support for arbitrary sized
integers.
This also reverts the recent addition of the `bindat-spec` macro and
the support for 64bit integers in the old Bindat language since that
is now considered obsolete anyway.
* doc/lispref/processes.texi (Bindat Types): Rename from `Bindat Spec`
and rewrite for the new sublanguage.
(Bindat Functions): Adjust to the new terminology.
(Bindat Computed Types): New node.
* lisp/emacs-lisp/bindat.el (bindat--type): New type.
(bindat--unpack-u64, bindat--unpack-u64r): Delete functions.
(bindat--unpack-item, bindat--pack-item, bindat--fixed-length-alist):
Revert addition of support for 64bit integers.
(bindat--unpack-group, bindat--length-group, bindat--pack-group):
Handle the new `bindat--type` values.
(bindat-spec): Revert addition of this macro.
(bindat--unpack-uint, bindat--unpack-uintr, bindat--pack-uint)
(bindat--pack-uintr): New functions.
(bindat-type, bindat-defmacro, bindat--pcase): New macros.
(bindat-type): New Edebug elem.
(bindat--type): New generic function.
(bindat--primitives): New constant.
(bindat--macroenv, bindat--op): New vars.
(bindat--make-docstring, bindat--fun, bindat--makefun, bindat--toplevel):
New functions.
* test/lisp/emacs-lisp/bindat-tests.el: Use `bindat-type`.
(ip): New Bindat type.
(header-bindat-spec, data-bindat-spec, packet-bindat-spec): Adjust to
new `bindat-type` macro.
(bindat-test-unpack): Simplify now that the order of fields is preserved.
(bindat-test--int-websocket-type, bindat-test--LEB128): New consts.
(bindat-test--pack-val, bindat-test--sint, bindat-test--recursive):
New tests.
Mattias Engdegård [Fri, 5 Mar 2021 19:21:01 +0000 (20:21 +0100)]
Make lambda-lifting work again
* lisp/emacs-lisp/cconv.el (cconv--analyze-use): Fix typo.
* test/lisp/emacs-lisp/cconv-tests.el (cconv-convert-lambda-lifted):
Add test case.
Tassilo Horn [Fri, 5 Mar 2021 19:53:18 +0000 (20:53 +0100)]
Improve rcirc-authenticated-hook docstring
* lisp/net/rcirc.el (rcirc-authenticated-hook): Improve docstring.
Stefan Monnier [Fri, 5 Mar 2021 18:31:16 +0000 (13:31 -0500)]
* lisp/emacs-lisp/bindat.el: Minor refactoring
(bindat--unpack-str, bindat--unpack-strz, bindat--unpack-bits):
New functions, extracted from `bindat--unpack-item`.
(bindat--unpack-item): Use them.
(bindat--align): New function.
(bindat--unpack-group, bindat--length-group, bindat--pack-group): Use it.
(bindat-get-field): Allow integers to index both lists (as returned by
`repeat`) and vectors (as returned by `vec`).
(bindat--pack-str, bindat--pack-bits): New functions, extracted from
`bindat--pack-item`.
(bindat--pack-item): Use them.
* test/lisp/emacs-lisp/bindat-tests.el (struct-bindat): Place the fields
in the order in which they appear in the structs.
Stefan Monnier [Fri, 5 Mar 2021 17:09:50 +0000 (12:09 -0500)]
* src/fns.c (Frandom): Handle bignum `limit`s
(ccall2, get_random_bignum): New functions.
Michael Albinus [Fri, 5 Mar 2021 16:51:22 +0000 (17:51 +0100)]
Declare some completion predicates
* lisp/filenotify.el (file-notify-handle-event):
* lisp/net/dbus.el (dbus-handle-event): Declare `completion-predicate'.
Masahiro Nakamura [Fri, 5 Mar 2021 16:46:53 +0000 (17:46 +0100)]
* doc/misc/tramp.texi (Remote shell setup): Fix reference.
Lars Ingebrigtsen [Fri, 5 Mar 2021 13:27:08 +0000 (14:27 +0100)]
Improve the documentation of :extra in cl-defmethod
* doc/lispref/functions.texi (Generic Functions): Improve
documentation of :extra (bug#46917).
* lisp/emacs-lisp/cl-generic.el (cl-defmethod): Ditto.
Mauro Aranda [Fri, 5 Mar 2021 13:18:32 +0000 (14:18 +0100)]
Fix qualifiers order for loadhist-unload-element in elp.el
* lisp/emacs-lisp/elp.el (loadhist-unload-element): The :extra
qualifier is expected to come before the other qualifiers, so do
that (bug#46917).
Stephen Berman [Fri, 5 Mar 2021 13:08:17 +0000 (14:08 +0100)]
Restrict the version guesser to top-level headings
* lisp/help-fns.el (help-fns--first-release): Restrict the version
guesser to top-level section -- looking in all headings leads to
false positives (bug#46889).
Lars Ingebrigtsen [Fri, 5 Mar 2021 13:01:00 +0000 (14:01 +0100)]
Actually fill the correct paragraph in `lisp-fill-paragraph'
* lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Fix previous
change here by actually filling the correct paragraph (bug#28937).
Basil L. Contovounesios [Fri, 5 Mar 2021 11:02:20 +0000 (11:02 +0000)]
Don't override load-path in require-theme
* lisp/custom.el (require-theme): Open-code 'require' error, because
binding load-path can prevent other libraries from loading on error,
such as debug.el, which gives a misleading error. (Bug#45068)
Pip Cet [Thu, 4 Mar 2021 21:06:13 +0000 (21:06 +0000)]
Don't ignore lexically-bound variables in a defvar (bug#46912)
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Walk
the value form of a defvar.
Glenn Morris [Fri, 5 Mar 2021 04:04:50 +0000 (20:04 -0800)]
* Makefile.in: Ensure non-info forms of doc/misc have an Emacs binary.
Stefan Monnier [Thu, 4 Mar 2021 23:20:56 +0000 (18:20 -0500)]
* lisp/emacs-lisp/cl-generic.el: Make `doc-string` prop work with qualifiers
(cl--defmethod-doc-pos): New function.
(cl-defmethod): Use it.
Lars Ingebrigtsen [Thu, 4 Mar 2021 20:39:40 +0000 (21:39 +0100)]
Add a command in package mode for opening home pages directly
* doc/emacs/package.texi (Package Menu): Document it.
* lisp/emacs-lisp/package.el (package-browse-url): New command and
keystroke (bug#46927).
Mauro Aranda [Thu, 4 Mar 2021 11:34:58 +0000 (08:34 -0300)]
Make checkdoc work with qualified methods
* lisp/emacs-lisp/checkdoc.el (checkdoc--next-docstring): Handle
cl-defmethod in a case of its own. Check for the presence of
qualifiers, and skip them accordingly until the docstring.
* test/lisp/emacs-lisp/checkdoc-tests.el (checkdoc-cl-defmethod-qualified-ok)
(checkdoc-cl-defmethod-with-extra-qualifier-ok)
(checkdoc-cl-defmethod-with-extra-and-nil-args-ok): Add tests for the fix.
Lars Ingebrigtsen [Thu, 4 Mar 2021 20:21:21 +0000 (21:21 +0100)]
Add "of" as a keyword in js-mode
* lisp/progmodes/js.el (js--keyword-re): Add the "of" of "for
... of" in ECMAScript 2018 (bug#46924).
Matt Armstrong [Thu, 4 Mar 2021 20:12:00 +0000 (21:12 +0100)]
Call the set_buffer_overlays_ setters
* src/buffer.c (Fkill_buffer): Call set_buffer_overlays_before and
set_buffer_overlays_after instead of setting the fields directly
(bug#46914).
Glenn Morris [Thu, 4 Mar 2021 18:47:09 +0000 (10:47 -0800)]
Generate info/dir directly from any org sources
* Makefile.in (texi_misc): New variable.
(srcdir_doc_info_dir_inputs): Use texi_misc.
(${srcdir}/info/dir): No longer depend on info-real.
Glenn Morris [Thu, 4 Mar 2021 18:44:07 +0000 (10:44 -0800)]
* doc/misc/Makefile.in (echo-sources): New phony target.
Glenn Morris [Thu, 4 Mar 2021 18:43:25 +0000 (10:43 -0800)]
* build-aux/make-info-dir: Handle .org input files.
Glenn Morris [Thu, 4 Mar 2021 18:41:00 +0000 (10:41 -0800)]
; Makefile.in: Update a comment.
Basil L. Contovounesios [Tue, 2 Mar 2021 14:35:50 +0000 (14:35 +0000)]
Decouple require-theme from load-theme
* lisp/custom.el (require-theme): Refashion after 'require', as a
function for loading only named features. Do not call
load-theme (bug#45068).
* etc/NEWS: Update its announcement accordingly.
* doc/lispref/customize.texi (Custom Themes): Document it.
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-vivendi-theme.el: Remove redundant calls to
'provide'.
* test/lisp/custom-tests.el (custom-tests--with-temp-dir): New
macro.
(custom-theme--load-path): Use it.
(custom-tests-require-theme): New test.
Basil L. Contovounesios [Thu, 4 Mar 2021 15:34:19 +0000 (15:34 +0000)]
; Pacify warnings in last newsticker change.
Eli Zaretskii [Thu, 4 Mar 2021 13:21:52 +0000 (15:21 +0200)]
; * etc/NEWS: Fix wording of a recently added entry.
Mauro Aranda [Thu, 4 Mar 2021 13:16:02 +0000 (10:16 -0300)]
Remove copy-pasto from image-dired.el
* lisp/image-dired.el (image-dired-dired-edit-comment-and-tags):
Remove reference to widget-example-repeat.
Mauro Aranda [Thu, 4 Mar 2021 13:13:26 +0000 (10:13 -0300)]
Remove duplicated tests in checkdoc-tests.el
* test/lisp/emacs-lisp/checkdoc-tests.el (checkdoc-cl-defmethod-ok)
(checkdoc-cl-defmethod-with-types-ok, checkdoc-cl-defun-with-key-ok)
(checkdoc-cl-defun-with-allow-other-keys-ok)
(checkdoc-cl-defun-with-default-optional-value-ok)
(checkdoc-cl-defun-with-destructuring-ok): This tests were duplicated,
so keep one copy of them. Checked by diffing two files with the
suspected tests, and supported by the fact that running occur with the
regexp "^(ert-deftest" reported 14 matches, while the tests being run
were 8.
Lars Ingebrigtsen [Thu, 4 Mar 2021 11:11:08 +0000 (12:11 +0100)]
Make radio checkboxes work in eww
* lisp/net/eww.el (eww-toggle-checkbox): Actually update the
:checked values in the form.
Glenn Morris [Thu, 4 Mar 2021 03:58:47 +0000 (19:58 -0800)]
Fix a doc/misc clean rule
* doc/misc/Makefile.in (TEXI_FROM_ORG): New variable.
(orgclean): Fix rule.
Basil L. Contovounesios [Wed, 3 Mar 2021 12:49:31 +0000 (12:49 +0000)]
Fix pcase dontcare pattern in cl--sm-macroexpand
For discussion, see the following thread:
https://lists.gnu.org/r/emacs-devel/2021-03/msg00119.html
* lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand): Fix recently
uncovered use of old name for pcase--dontcare.
Stefan Monnier [Wed, 3 Mar 2021 23:40:03 +0000 (18:40 -0500)]
* lisp/emacs-lisp/pcase.el (pcase-defmacro): Fix `pcase-tests-macro`
* lisp/emacs-lisp/radix-tree.el (radix-tree-leaf): Simplify accordingly.
Ulf Jasper [Wed, 3 Mar 2021 20:10:34 +0000 (21:10 +0100)]
Preserve group structure on opml import and export.
* lisp/net/newst-backend.el (newsticker--raw-url-list-defaults),
(newsticker-url-list-defaults),
(newsticker--get-news-by-url),
(newsticker--sentinel-work),
(newsticker--parse-atom-0.3),
(newsticker--decode-rfc822-date),
(newsticker--image-download-by-wget),
(newsticker--image-save),
(newsticker--image-download-by-url),
(newsticker--cache-save),
(newsticker--stat-num-items): Fix indentation.
(newsticker-opml-export): Preserve group structure on export.
(newsticker--opml-insert-elt),
(newsticker--opml-insert-group),
(newsticker--opml-insert-feed): New.
(newsticker--opml-import-outlines):
(newsticker-opml-import): Preserve group structure on import. (Fixes
fourth issue in Bug#41376.)
Juri Linkov [Wed, 3 Mar 2021 19:12:13 +0000 (21:12 +0200)]
New mode outline-cycle-minor-mode with Orgmode-like TAB cycling on headings
* lisp/outline.el (outline-mode-cycle-map): New keymap from outline-mode-map.
(outline-mode-map): Inherit from outline-mode-cycle-map.
(outline-font-lock-keywords): Append keymap and face depending on
'outline-minor-mode-cycle' and 'outline-minor-mode-highlight'.
(outline-minor-mode-cycle, outline-minor-mode-highlight): New variables.
(outline-minor-mode-highlight-buffer): New function.
(outline-minor-mode): Handle 'outline-minor-mode-cycle' and
'outline-minor-mode-highlight'.
(outline-cycle-minor-mode, outline-cycle-highlight-minor-mode):
New minor modes (bug#45147).
* etc/compilation.txt:
* etc/grep.txt:
Enable outline-cycle-highlight-minor-mode.
Stefan Kangas [Wed, 3 Mar 2021 18:54:37 +0000 (19:54 +0100)]
Make inversion.el obsolete (Bug#46841)
* lisp/cedet/inversion.el:
* test/lisp/cedet/inversion-tests.el: Move from here...
* lisp/obsolete/inversion.el:
* test/lisp/obsolete/inversion-tests.el: ...to here.
* lisp/cedet/cedet.el (cedet-version): Make obsolete.
* lisp/cedet/cedet-cscope.el (cedet-cscope-version-check):
* lisp/cedet/cedet-global.el (cedet-gnu-global-version-check):
* lisp/cedet/cedet-idutils.el (cedet-idutils-version-check):
* lisp/cedet/ede/make.el (ede-make-check-version): Use 'version<'
instead of 'inversion-check-version'.
* lisp/cedet/semantic/db-file.el (semanticdb-load-database): Don't
use 'inversion-test'.
* lisp/cedet/semantic/ede-grammar.el
(ede-proj-makefile-insert-variables): Don't add inversion to
loadpath.
* lisp/speedbar.el: Remove stale comment.
Alan Mackenzie [Wed, 3 Mar 2021 11:55:51 +0000 (11:55 +0000)]
C++ Mode: Handle "if constexpr (...)" with a simple statement correctly
* lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): Add a check and
handling for c-block-stmt-hangon-key in the main loop.
Stefan Monnier [Tue, 2 Mar 2021 20:57:45 +0000 (15:57 -0500)]
* lisp/emacs-lisp/pcase.el (pcase--u1): Fix typo
Alan Mackenzie [Tue, 2 Mar 2021 20:31:36 +0000 (20:31 +0000)]
CC Mode: Fix analysis of brace lists, particularly in C++ Mode
Fix some alignment functionality in cc-align.el.
* lisp/progmodes/cc-align.el (c-lineup-arglist-intro-after-paren): Align the
next line under the previous entry rather than one to the right of the paren.
(c-lineup-2nd-brace-entry-in-arglist): Take the anchor point from the
brace-list-entry element, not the brace-list-intro one.
* lisp/progmodes/cc-engine.el (c-looking-at-decl-block): Use
c-looking-at-statement-block to test whether "struct A {" begins a brace list
or a struct declaration.
(c-looking-at-or-maybe-in-bracelist): Several detailed amendments, correctly
to recognize brace lists.
(c-looking-at-statement-block): No longer search for commas, as they are not
reliable indicators of a brace list. Search now for a restricted set of
keywords, since some can appear in brace lists in C++ mode.
* lisp/progmodes/cc-langs.el (c-stmt-block-only-keywords)
(c-stmt-block-only-keywords-regexp): New lang consts/vars.
(c-pre-id-bracelist-kwds): New lang const.
(c-pre-id-bracelist-key): Derive now from the above.
(c-pre-brace-non-bracelist-key): New lang const/var.
Juri Linkov [Tue, 2 Mar 2021 19:50:49 +0000 (21:50 +0200)]
* lisp/tab-bar.el: Minor stylistic fixes.
(tab-bar-select-tab-modifiers): Use tab-bar--undefine-keys and
tab-bar--define-keys instead of turning tab-bar-mode on/off.
Stefan Monnier [Tue, 2 Mar 2021 14:13:57 +0000 (09:13 -0500)]
* lisp/emacs-lisp/trace.el (trace-values): Work outside of traced function
Dmitry Gutov [Tue, 2 Mar 2021 13:16:34 +0000 (15:16 +0200)]
(ruby-find-library-file): Also recognize 'gem' statements
* lisp/progmodes/ruby-mode.el (ruby-find-library-file):
Also recognize 'gem' statements.
Pip Cet [Sun, 28 Feb 2021 19:43:09 +0000 (19:43 +0000)]
Compile closures that modify their bound vars correctly (Bug#46834)
* lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function): Don't
move let bindings into the lambda. Don't reverse list of
bindings. (byte-compile): Evaluate the return value if it was
previously reified.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-reify-function):
Add tests.
Lars Ingebrigtsen [Tue, 2 Mar 2021 07:07:59 +0000 (08:07 +0100)]
Improve the dired-do-kill-lines doc string
* lisp/dired-aux.el (dired-do-kill-lines): Document the FMT
parameter (bug#46867).
Stefan Monnier [Tue, 2 Mar 2021 04:57:34 +0000 (23:57 -0500)]
* lisp/emacs-lisp/pcase.el: Bind all the vars in `or` patterns
Improve the handling of `or` patterns where not all sub-patterns bind the
same set of variables. This used to be "unsupported" and behaved in
somewhat unpredictable ways.
(pcase--expand): Rewrite.
(pcase-codegen): Delete.
* doc/lispref/control.texi (pcase Macro): Adjust accordingly.
Also remove the warning about "at least two" sub patterns.
These work fine, AFAICT, and if not we should fix it.
* test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-or-vars): New test.
Lars Ingebrigtsen [Mon, 1 Mar 2021 21:41:42 +0000 (22:41 +0100)]
Fix previous completion-pcm--optimize-pattern fix
* lisp/minibuffer.el (completion-pcm--optimize-pattern): Re-fix
previous change.
Lars Ingebrigtsen [Mon, 1 Mar 2021 21:38:17 +0000 (22:38 +0100)]
Fix warning in completion-pcm--optimize-pattern
* lisp/minibuffer.el (completion-pcm--optimize-pattern): Remove
unused variable.
Lars Ingebrigtsen [Mon, 1 Mar 2021 21:12:43 +0000 (22:12 +0100)]
Make easymenu downcase the menu symbol for greater backwards compat
* lisp/cmuscheme.el (map): Revert previous fix.
* lisp/woman.el (woman-dired-define-keys): Ditto.
* lisp/emacs-lisp/easymenu.el (easy-menu-do-define): Downcase the
menu name for greater backwards compatibility.
Stefan Monnier [Mon, 1 Mar 2021 20:35:51 +0000 (15:35 -0500)]
* lisp/emacs-lisp/pcase.el: Fix bug#46786
Revert commit
a218c9861573b5ec4979ff2662f5c0343397e3ff, but in order
to avoid the spurious warnings that this commit tried to squash,
keep track of the vars used during the match so as to add
corresponding annotations to explicitly silence the spurious warnings.
To do this, we change the VARS used in `pcase-u` (and throughout
the pcase code): they used to hold elements of the form (NAME . VAL)
and now they hold elements of the form (NAME VAL . USED).
(pcase--expand): Bind all vars instead of only those found via fgrep.
(pcase-codegen): Silence "unused var" warnings for those vars that have
already been referenced during the match itself.
(pcase--funcall, pcase--eval): Record the vars that are used.
(pcase--u1): Record the vars that are used via non-linear patterns.
* lisp/textmodes/mhtml-mode.el (mhtml-forward):
* lisp/vc/diff-mode.el (diff-goto-source): Silence newly
discovered warnings.
* test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-bug46786): New test.
Mattias Engdegård [Mon, 1 Mar 2021 19:52:39 +0000 (20:52 +0100)]
Fix multiple Calc defmath errors (bug#46750)
Fix incorrect variable scoping in `let*`, `for` and `foreach`.
Fix loop variable value in `foreach` (should be element, not tail).
Fix function quoting, as in ('cons x y) -- didn't work at all.
Reported by Stephan Neuhaus.
* lisp/calc/calc-prog.el (math-define-exp, math-handle-foreach):
* test/lisp/calc/calc-tests.el: (var-g, test1, test2, test3, test4)
(test5, test6, test7, calc-defmath): Test various defmath forms.
Mattias Engdegård [Mon, 1 Mar 2021 15:40:31 +0000 (16:40 +0100)]
Remove references to old bignums from Calc manual
* doc/misc/calc.texi: Remove references to the old Calc representation
of big integers, outdated references to fixnums, an any text and
examples that only made sense at the time.
Mattias Engdegård [Mon, 1 Mar 2021 15:38:33 +0000 (16:38 +0100)]
* lisp/calc/calc-ext.el (math-equal-int): Work for bignums.
Juri Linkov [Mon, 1 Mar 2021 19:58:00 +0000 (21:58 +0200)]
* lisp/isearch.el: Minor doc fix.
Juri Linkov [Mon, 1 Mar 2021 19:56:42 +0000 (21:56 +0200)]
* lisp/tab-bar.el (tab-bar--define-keys): Add check for tab-bar-format-global.
Protesilaos Stavrou [Mon, 1 Mar 2021 15:31:44 +0000 (17:31 +0200)]
Add 'require-theme' function
* etc/NEWS: Document new function.
* lisp/custom.el (require-theme): Add function.
This follows from the discussion on bug#45068 where it became apparent
that there was no equivalent mechanism to 'require' that read through
the 'custom-theme-load-path'.
Lars Ingebrigtsen [Mon, 1 Mar 2021 19:48:20 +0000 (20:48 +0100)]
Fix woman.el menu alteration code
* lisp/woman.el (woman-dired-define-keys): Fix naming of menu
after dired menu changes.
Alan Mackenzie [Mon, 1 Mar 2021 19:23:01 +0000 (19:23 +0000)]
CC Mode: Amend C-M-a/e to handle lambda function in C++ arglist
* lisp/progmodes/cc-cmds.el (c-where-wrt-brace-construct): Reformulate latter
part such that the least enclosing braces and parentheses are used when
determining containment in such. c-beginning-of-decl-1 has been superseded
by list movement and syntactic whitespace movement.
(c-backward-to-nth-BOF-{): Work on least enclosing parens rather than parens
at any level when moving back to an opening brace.
(c-forward-to-nth-EOF-\;-or-}): Work on least enclosing parens, as above.
Move the correction of point when in a "function trailer" to after the main
loop, correcting a minor bug.
Stefan Monnier [Mon, 1 Mar 2021 19:07:05 +0000 (14:07 -0500)]
* lisp/emacs-lisp/pcase.el (pcase--split-pred): Re-fix bug#14773
Adjust to calling convention of `macroexp--fgrep`.
Stefan Monnier [Mon, 1 Mar 2021 17:18:49 +0000 (12:18 -0500)]
Fix misuses of `byte-compile-macro-environment`
These seem to be left overs from Emacs<24 when `macroexpand-all` was
implemented in the CL library and hence the macros's evaluation
environment could come from different places depending on the
circumstance (either `byte-compile-macro-environment`, or
`cl-macro-environment`, or ...).
`byte-compile-macro-environment` contains definitions which expand to
code that is only understood by the rest of the byte-compiler,
so using it for code which isn't being byte-compiled leads to errors
such as references to non-existing function
`internal--with-suppressed-warnings`.
* lisp/emacs-lisp/cl-extra.el (cl-prettyexpand): Remove left-over
binding from when `macroexpand-all` was implemented in the CL library.
* lisp/emacs-lisp/ert.el (ert--expand-should-1):
* lisp/emacs-lisp/cl-macs.el (cl--compile-time-too): Properly preserve the
macroexpand-all-environment.
(cl--macroexp-fboundp): Pay attention to `cl-macrolet` macros as well.
Stefan Monnier [Mon, 1 Mar 2021 16:42:04 +0000 (11:42 -0500)]
* src/eval.c (init_eval_once): Bump max_specpdl_size (bug46818)
Further testing seems to confirm my suspicion that the increase in the
specpdl comes from the recent change to `pcase--if`.
* lisp/international/mule-cmds.el (update-leim-list-file): Revert workaround.
Glenn Morris [Mon, 1 Mar 2021 14:27:02 +0000 (06:27 -0800)]
; Auto-commit of loaddefs files.
Matt Armstrong [Mon, 1 Mar 2021 13:26:21 +0000 (14:26 +0100)]
Clean up obsolete comment
* src/marker.c (unchain_marker): Clean up obsolete comment
(bug#46836).
Commit
cf3164523b (* src/alloc.c: Avoid O(N²) complexity when
unchaining markers (bug#24548)., 2018-03-23) removed the call from GC
into unchain_marker, so there is no need to warn about it.
F. Jason Park [Mon, 1 Mar 2021 13:04:39 +0000 (14:04 +0100)]
Fix Bootstring skew parameter in puny.el
* lisp/net/puny.el: change puny-skew to match value given in RFC3492.
* test/lisp/net/puny-tests.el (puny-test-encode-domain)
(puny-test-decode-domain): add regression case for popular
domain. (bug#46838).
Stefan Kangas [Mon, 1 Mar 2021 03:21:11 +0000 (04:21 +0100)]
Convert various menus to easymenu
* lisp/emacs-lisp/lisp-mode.el (lisp-mode-map): Move menu from
here...
(lisp-mode-menu): ...to here, and convert to easymenu.
* lisp/progmodes/elisp-mode.el (lisp-interaction-mode-map): Move
menu definition from here...
(lisp-interaction-mode-menu): ...to here, and convert to easymenu.
* lisp/replace.el (occur-menu-map): Convert to easymenu.
Glenn Morris [Mon, 1 Mar 2021 02:07:04 +0000 (18:07 -0800)]
Improve admin.el's Makefile in standalone manual tarfiles
* admin/admin.el (make-manuals-dist-output-variables):
Fix abs_top_builddir. Add EMACS.
(make-manuals-dist--1): Respect case when replacing output variables.
Glenn Morris [Sun, 28 Feb 2021 23:22:29 +0000 (15:22 -0800)]
info/dir needs generated texi files to exist
* Makefile.in (misc-info): Depend on lisp.
(${srcdir}/info/dir): Depend on info-real.
(info): Simplify.
Glenn Morris [Sun, 28 Feb 2021 23:13:07 +0000 (15:13 -0800)]
Make generation of texi from org overwrite output
* doc/misc/Makefile.in (org_template): Don't delete output.
* lisp/org/ox-texinfo.el (org-texinfo-export-to-texinfo-batch):
Overwrite existing output.
Glenn Morris [Sun, 28 Feb 2021 22:27:28 +0000 (14:27 -0800)]
* doc/misc/modus-themes.org: Add copying markup. (Bug#45141)
Glenn Morris [Sun, 28 Feb 2021 22:26:46 +0000 (14:26 -0800)]
Update admins make-manuals for new output variable
* admin/admin.el (make-manuals-dist-output-variables):
Add abs_top_builddir.
Stefan Kangas [Sun, 28 Feb 2021 22:23:41 +0000 (23:23 +0100)]
Convert dired menus to easymenu
* lisp/dired.el (dired-mode-map): Move menus from here...
(dired-mode-subdir-menu, dired-mode-immediate-menu)
(dired-mode-regexp-menu, dired-mode-mark-menu)
(dired-mode-operate-menu): ...to here, and convert to easymenu.
Stefan Kangas [Sun, 28 Feb 2021 21:21:39 +0000 (22:21 +0100)]
Convert hi-lock-menu to easymenu
* lisp/hi-lock.el (hi-lock-menu): Convert to easymenu.
Alan Mackenzie [Sun, 28 Feb 2021 21:15:34 +0000 (21:15 +0000)]
Combine and reconcile two conflicting entries in NEWS on goto-line-history
* etc/NEWS: Amend.
* doc/lispref/minibuf.texi (Minibuffer History): Amend the entry about
goto-line-history, which is now buffer local only after being so customized.
Mattias Engdegård [Sun, 28 Feb 2021 18:02:15 +0000 (19:02 +0100)]
Declare more string predicates as pure
* lisp/emacs-lisp/byte-opt.el (pure-fns): Treat string>,
string-greaterp, string-empty-p, string-blank-p, string-prefix-p and
string-suffix-p as pure functions in the compiler.
Basil L. Contovounesios [Sun, 28 Feb 2021 16:29:05 +0000 (16:29 +0000)]
; Fix process-lines-handling-status docstring.
Basil L. Contovounesios [Sun, 28 Feb 2021 15:44:34 +0000 (15:44 +0000)]
; Fix dired-switches-in-mode-line defcustom tags.
Stefan Kangas [Sun, 28 Feb 2021 18:25:17 +0000 (19:25 +0100)]
Convert ibuffer menus to easymenu
* lisp/ibuffer.el (ibuffer-mode-map): Move menu from here...
(ibuffer-mode-mark-menu, ibuffer-mode-view-menu): ...to here.
Convert to easymenu.
(ibuffer-mode--groups-menu-definition): New function. Fix bug where
"Kill filter by group named" and "Yank last killed filter group
before" was overwritten and never shown in the menu.
(ibuffer-mode-groups-popup): Convert to easymenu.
(ibuffer-mode-operate-menu): Rename from 'ibuffer-mode-operate-map'
and update uses. Convert to easymenu.
(ibuffer-mode-operate-map): Make into obsolete alias for above
renamed variable.